﻿<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>TraySetIcon - 语法 &amp; 使用 | AutoHotkey v2</title>
<meta name="description" content="The TraySetIcon function changes the script's tray icon (which is also used by GUI and dialog windows)." />
<meta name="ahk:equiv-v1" content="lib/Menu.htm#Icon" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
</head>
<body>

<h1>TraySetIcon</h1>

<p>更改脚本的<a href="../Program.htm#tray-icon">托盘图标</a>(它也被 <a href="Gui.htm">GUI</a> 和对话框窗口使用).</p>

<pre class="Syntax"><span class="func">TraySetIcon</span>(<span class="optional">FileName, IconNumber, Freeze</span>)</pre>
<h2 id="Parameters">参数</h2>
<dl>

  <dt>FileName</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
    <p>如果省略, 则使用 <em>当前</em> 托盘图标, 这只对 <em>Freeze</em> 有意义. 否则, 请指定图标或图片的路径, <a href="../misc/ImageHandles.htm">位图或图标句柄</a>(如 <code>"HICON:" handle</code>), 或星号(*) 将脚本恢复到其默认图标.</p>
  </dd>
  
  <dt>IconNumber</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#numbers">整数</a></p>
    <p>如果省略, 则它默认为 1(文件中除第一组图标). 否则, 请指定要使用的图标组的编号. 例如, <code>2</code> 将加载第二组图标中的默认图标. 如果 <em>IconNumber</em> 为负数, 则假定其绝对值表示可执行文件中图标的资源 ID. 如果省略 <em>FileName</em>, <em>IconNumber</em> 将被忽略.</p>
  </dd>
  
  <dt>Freeze</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#boolean">布尔值</a></p>
    <p>如果省略, 则图标的冻结/解冻状态保持不变.</p>
    <p>如果为 <strong>true</strong>, 冻结图标, 例如 <a href="Pause.htm">Pause</a> 和 <a href="Suspend.htm">Suspend</a> 将不会改变图标.</p>
    <p>如果为 <strong>false</strong>, 将解冻图标.</p>
  </dd>

</dl>

<h2 id="Remarks">备注</h2>
<p>若要冻结(或解冻) <em>当前</em> 图标, 使用函数如下所示: <code>TraySetIcon(,, true)</code>.</p>
<p>改变托盘图标同时也改变由 <a href="InputBox.htm">InputBox</a> 和后续创建的  <a href="Gui.htm">GUI</a> 窗口显示的图标. 也会影响<a href="../Scripts.htm#ahk2exe">已编译脚本</a>, 即使它在编译时指定了自定义的图标. 注意: 如果之前使用如 <a href="_NoTrayIcon.htm">#NoTrayIcon</a> 的方法隐藏了托盘图标, 则改变图标不会让它显示出来; 要让它显示, 请使用 <code><a href="../Variables.htm#IconHidden">A_IconHidden</a> := false</code>.</p>
<p id="distort">从 .ICO 外的其他类型文件中加载托盘图标时可能产生轻微的变形. 尤其是对于 16x16 的图标. 要避免此问题, 请把要使用的托盘图标保存为 .ICO 文件.</p>
<p>操作系统的 DLL 和 CPL 文件包含的一些内置图标可能会有用. 例如: <code>TraySetIcon "Shell32.dll", 174</code>.</p>
<p>内置变量 <strong><a href="../Variables.htm#IconNumber">A_IconNumber</a></strong> 和 <strong><a href="../Variables.htm#IconFile">A_IconFile</a></strong> 分别包含了当前图标的编号和名称(带完整路径)(如果为默认图标则两者都为空).</p>
<p>托盘图标的工具提示可以通过给 <a href="../Variables.htm#IconTip">A_IconTip</a> 赋值来更改.</p>

<h2 id="Related">相关</h2>
<p><a href="_NoTrayIcon.htm">#NoTrayIcon</a>, <a href="TrayTip.htm">TrayTip</a>, <a href="Menu.htm">Menu 对象</a></p>

</body>
</html>